home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / encodings / uu_codec.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  4KB  |  120 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. """ Python 'uu_codec' Codec - UU content transfer encoding
  5.  
  6.     Unlike most of the other codecs which target Unicode, this codec
  7.     will return Python string objects for both encode and decode.
  8.  
  9.     Written by Marc-Andre Lemburg (mal@lemburg.com). Some details were
  10.     adapted from uu.py which was written by Lance Ellinghouse and
  11.     modified by Jack Jansen and Fredrik Lundh.
  12.  
  13. """
  14. import codecs
  15. import binascii
  16.  
  17. def uu_encode(input, errors = 'strict', filename = '<data>', mode = 438):
  18.     """ Encodes the object input and returns a tuple (output
  19.         object, length consumed).
  20.  
  21.         errors defines the error handling to apply. It defaults to
  22.         'strict' handling which is the only currently supported
  23.         error handling for this codec.
  24.  
  25.     """
  26.     if not errors == 'strict':
  27.         raise AssertionError
  28.     StringIO = StringIO
  29.     import cStringIO
  30.     b2a_uu = b2a_uu
  31.     import binascii
  32.     infile = StringIO(input)
  33.     outfile = StringIO()
  34.     read = infile.read
  35.     write = outfile.write
  36.     write('begin %o %s\n' % (mode & 511, filename))
  37.     chunk = read(45)
  38.     while chunk:
  39.         write(b2a_uu(chunk))
  40.         chunk = read(45)
  41.     write(' \nend\n')
  42.     return (outfile.getvalue(), len(input))
  43.  
  44.  
  45. def uu_decode(input, errors = 'strict'):
  46.     """ Decodes the object input and returns a tuple (output
  47.         object, length consumed).
  48.  
  49.         input must be an object which provides the bf_getreadbuf
  50.         buffer slot. Python strings, buffer objects and memory
  51.         mapped files are examples of objects providing this slot.
  52.  
  53.         errors defines the error handling to apply. It defaults to
  54.         'strict' handling which is the only currently supported
  55.         error handling for this codec.
  56.  
  57.         Note: filename and file mode information in the input data is
  58.         ignored.
  59.  
  60.     """
  61.     if not errors == 'strict':
  62.         raise AssertionError
  63.     StringIO = StringIO
  64.     import cStringIO
  65.     a2b_uu = a2b_uu
  66.     import binascii
  67.     infile = StringIO(input)
  68.     outfile = StringIO()
  69.     readline = infile.readline
  70.     write = outfile.write
  71.     while None:
  72.         s = readline()
  73.         if not s:
  74.             raise ValueError, 'Missing "begin" line in input data'
  75.         
  76.         if s[:5] == 'begin':
  77.             break
  78.             continue
  79.     while None:
  80.         s = readline()
  81.         if not s or s == 'end\n':
  82.             break
  83.         
  84.         
  85.         try:
  86.             data = a2b_uu(s)
  87.         except binascii.Error:
  88.             v = None
  89.             nbytes = ((ord(s[0]) - 32 & 63) * 4 + 5) / 3
  90.             data = a2b_uu(s[:nbytes])
  91.  
  92.     if not s:
  93.         raise ValueError, 'Truncated input data'
  94.     
  95.     return (outfile.getvalue(), len(input))
  96.  
  97.  
  98. class Codec(codecs.Codec):
  99.     
  100.     def encode(self, input, errors = 'strict'):
  101.         return uu_encode(input, errors)
  102.  
  103.     
  104.     def decode(self, input, errors = 'strict'):
  105.         return uu_decode(input, errors)
  106.  
  107.  
  108.  
  109. class StreamWriter(Codec, codecs.StreamWriter):
  110.     pass
  111.  
  112.  
  113. class StreamReader(Codec, codecs.StreamReader):
  114.     pass
  115.  
  116.  
  117. def getregentry():
  118.     return (uu_encode, uu_decode, StreamReader, StreamWriter)
  119.  
  120.